# 定义编译器
CXX = g++

# 定义编译选项，包括头文件搜索路径
CXXFLAGS = -Iinclude -Wall -g

# 定义链接选项
LDFLAGS = 

# 定义目标文件名
TARGET = use_currency

# 获取所有源文件
SOURCES = $(wildcard src/*.cpp)

# 从源文件生成对象文件列表
OBJECTS = $(SOURCES:src/%.cpp=build/obj/%.o)

# 默认目标
all: $(TARGET)

# 链接目标
$(TARGET): $(OBJECTS)
	@mkdir -p bin
	$(CXX) $(LDFLAGS) $(OBJECTS) -o bin/$(TARGET)

# 编译源文件
build/obj/%.o: src/%.cpp
	@mkdir -p $(@D)
	$(CXX) $(CXXFLAGS) -c $< -o $@

# 运行目标
run: all
	@echo "Running $(TARGET)..."
	@./bin/$(TARGET)

# 清理构建产物
clean:
	rm -rf build
	rm -f bin/*

# 伪目标，避免与文件名冲突
.PHONY: all clean run